package com.cskaoyan.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.cskaoyan.bean.baseresultVO.BaseData;
import com.cskaoyan.bean.baseresultVO.BaseParam;
import com.cskaoyan.bean.domain.Comment;
import com.cskaoyan.bean.domain.Order;
import com.cskaoyan.bean.domain.OrderGoods;
import com.cskaoyan.bean.domain.User;
import com.cskaoyan.bean.order.Chanal.Chanal;
import com.cskaoyan.bean.order.baseorders.BaseOrder.BaseOrder;
import com.cskaoyan.bean.order.baseorders.BaseOrder.OrderShowType;
import com.cskaoyan.bean.order.ordership.OrderShioBo;
import com.cskaoyan.bean.order.wxGetOrder.OrderDetailForUser;
import com.cskaoyan.bean.order.wxGetOrder.WxOrderBO;

import java.util.Date;
import java.util.List;

/**
 * <p>
 * 订单表 服务类
 * </p>
 *
 * @author looper
 * @since 2021-11-29
 */
public interface OrderService {

    List<Chanal> getChanel();

    BaseData getOrderList(BaseParam baseParam, Order order,
                          String[] orderStatusArray ,Date start,Date end);

    BaseOrder getOrderDetail(Integer id);

    Integer deleteByUpdate(Integer orderId);

    Integer getShip(OrderShioBo orderShioBo);

    BaseData getOrderListForUser(OrderShowType ordershowType, BaseParam baseParam, User user);

    /**
     * 根据id查询返回
     * @param order
     * @return
     */
    OrderDetailForUser getOrderdetailForUser(Order order);


    /**
     * 根据order中的id更改order对象中的订单状态
     * @param order
     */
    Integer getChangeStatus(Order order);


    Integer getComment(Comment comment, Integer orderGoodsId);

    List<OrderGoods> getGoods(OrderGoods orderGoods);

    Integer orderSubmit(WxOrderBO order);
}
